package com.hxzy.projectssmplus.controller;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hxzy.projectssmplus.dto.SysConfigDTO;
import com.hxzy.projectssmplus.entity.SysConfig;
import com.hxzy.projectssmplus.service.SysConfigService;
import com.hxzy.projectssmplus.vo.AjaxResult;
import com.hxzy.projectssmplus.vo.AjaxTableInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.Date;

@RestController
public class SysConfigController extends BaseController {

    @Autowired
    private SysConfigService sysConfigService;

    @GetMapping(value = "/config/data")
    public AjaxTableInfo ajaxData(SysConfigDTO sysConfigDTO) {
        IPage<SysConfig> page = this.sysConfigService.searchByXML(super.startPage(), sysConfigDTO);

        return super.getTableInfo(page);
    }


    @PostMapping(value = "config/add")
    public AjaxResult add(@RequestBody SysConfig sysConfig) {
        sysConfig.setCreateTime(new Date());
        boolean save = this.sysConfigService.save(sysConfig);
        if (save) {
            return AjaxResult.success("新增成功");
        } else {
            return AjaxResult.error("新增失败");
        }
    }

    @DeleteMapping(value = "config/remove/{configId}")
    public AjaxResult remove(@PathVariable(value = "configId") Integer[] configIds) {

        this.sysConfigService.deleteConfigByIds(configIds);

        return AjaxResult.success("删除成功");

    }

    @PostMapping(value = "config/edit")
    public AjaxResult edit(@RequestBody SysConfig sysConfig) {
        boolean update = this.sysConfigService.updateById(sysConfig);
        if (update) {
            return AjaxResult.success("修改成功");
        } else {
            return AjaxResult.error("修改失败");
        }
    }

    @GetMapping(value = "config/info/{configId}")
    public AjaxResult info(@PathVariable(value = "configId") Integer configId) {
        SysConfig byId = this.sysConfigService.getById(configId);
        return AjaxResult.success_data(byId);
    }
}
